package com.sinry.common.core.domain.dto;

import cn.hutool.core.bean.BeanUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;

/**
 * 接口文档注册表
 * @TableName sinry_api_register
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ApiRegisterDto implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Integer id;

    /**
     * 文档名称
     */
    private String name;

    /**
     * 服务名称,代表需要聚合的服务
     */
    private String serviceName;

    /**
     * 网关路径
     */
    private String servicePath;

    /**
     * api-doc接口地址
     */
    private String location;

    /**
     * swagger版本
     */
    private String swaggerVersion;

    /**
     * nacos服务分组名称
     */
    private String groupName;

    /**
     * nacos服务命名空间id
     */
    private String namespaceId;

    /**
     * 集群名称,多个集群用逗号分隔
     */
    private String clusters;

    /**
     * 是否开启接口验证：1是 0否
     */
    private Integer basicAuthEnable;

    /**
     * basic用户名
     */
    private String basicUsername;

    /**
     * basic密码
     */
    private String basicPassword;

    /**
     * 文档排序
     */
    private Integer order = 0;

    public static ApiRegisterDto convert(Object source) {
        return BeanUtil.toBean(source, ApiRegisterDto.class);
    }
}